package com.alcatel_lucent.osp.service;

import com.alcatel_lucent.osp.model.Attachment;
import com.alcatel_lucent.osp.model.Comment;
import com.alcatel_lucent.osp.model.Request;
import com.alcatel_lucent.osp.model.RequestStatus;
import com.alcatel_lucent.osp.model.User;
import org.apache.struts2.json.JSONException;

import java.io.IOException;
import java.util.Collection;
import java.util.Date;
import java.util.Map;

public interface RequestService {

    String getWebRoot();
    void setWebRoot(String webRoot);

    Request createRequest(Request request);

    Collection<Request> findMyRequest(User user);
    
    Collection<Request> findMyFollowups(User user);

    Request findRequestById(Long Id);

    String getRequestJSONById(Long id, Collection<String> excludeProperties) throws JSONException;
    String getRequestJSON(Request request, Collection<String> excludeProperties) throws JSONException;

    Comment createComment(Long requestId, String comment);
	
	Request updateRequest(Long requestId, RequestStatus status, Date targetDate, String comment, String[] copyList);

    boolean isGuestAccess(Request request);

}
